package gluehttp

type ResponseError struct {
	Code    int    // 错误响应码
	Message string // 用户看到的错误信息
	Err     error  // 真实错误信息
}

func (r ResponseError) GetUserMessage() string {
	return r.Message
}

func (r ResponseError) GetError() error {
	return r.Err
}

func (r ResponseError) Error() string {
	return r.Message
}

func NewError(code int, userMsg string, error error) *ResponseError {
	return &ResponseError{
		Code:    code,
		Message: userMsg,
		Err:     error,
	}
}

func NewResponseError(code int, userMessage string, err error) *ResponseError {
	return &ResponseError{Code: code, Message: userMessage, Err: err}
}

func NewServerError(customMsg string, err error) *ResponseError {
	return NewResponseError(900, customMsg, err)
}

func NewRequestParamsError(err error) *ResponseError {
	return NewResponseError(900, "请求参数错误", err)
}
